#include "LED.h"
#include "stm32f10x.h"

/**
 * @brief  初始化LED控制引脚
 * @param  无
 * @retval 无
 */
void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    // 使能GPIO时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    // 配置LED控制引脚为推挽输出
    GPIO_InitStructure.GPIO_Pin = LED_RED_PIN | LED_GREEN_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 初始状态为全部关闭
    LED_AllOff();
}

/**
 * @brief  点亮红色LED
 * @param  无
 * @retval 无
 */
void LED_RedOn(void)
{
    GPIO_SetBits(LED_RED_GPIO, LED_RED_PIN);
}

/**
 * @brief  关闭红色LED
 * @param  无
 * @retval 无
 */
void LED_RedOff(void)
{
    GPIO_ResetBits(LED_RED_GPIO, LED_RED_PIN);
}

/**
 * @brief  点亮绿色LED
 * @param  无
 * @retval 无
 */
void LED_GreenOn(void)
{
    GPIO_SetBits(LED_GREEN_GPIO, LED_GREEN_PIN);
}

/**
 * @brief  关闭绿色LED
 * @param  无
 * @retval 无
 */
void LED_GreenOff(void)
{
    GPIO_ResetBits(LED_GREEN_GPIO, LED_GREEN_PIN);
}

/**
 * @brief  关闭所有LED
 * @param  无
 * @retval 无
 */
void LED_AllOff(void)
{
    LED_RedOff();
    LED_GreenOff();
}
